package com.have.blog.admin.domain.dto;

import com.have.blog.base.dto.BaseDto;
import com.have.blog.base.validator.annotation.IntegerNotNull;
import com.have.blog.base.validator.group.Insert;
import com.have.blog.base.validator.group.Update;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.util.List;

/**
 * 菜单表VO
 */
@Data
public class ResourceMenuDto extends BaseDto<ResourceMenuDto> {
    /**
     * 菜单名称
     */
    @NotBlank(groups = {Insert.class, Update.class})
    private String name;

    /**
     * 菜单级别 （一级分类，二级分类）
     */
    @IntegerNotNull(groups = {Insert.class, Update.class})
    private Integer menuLevel;

    /**
     * 菜单类型 （菜单，按钮）
     */
    @IntegerNotNull(groups = {Insert.class, Update.class})
    private Integer menuType;

    /**
     * 介绍
     */
    private String summary;

    /**
     * Icon图标
     */
    private String icon;

    /**
     * 父UID
     */
    private Integer parentUid;

    /**
     * URL地址
     */
    @NotBlank(groups = {Insert.class, Update.class})
    private String url;

    /**
     * 排序字段(越大越靠前)
     */
    private Integer sort;

    /**
     * 是否显示  1: 是  0: 否
     */
    @IntegerNotNull(groups = {Insert.class, Update.class})
    private Integer isShow;

    /**
     * 是否跳转外部URL，如果是，那么路由为外部的链接
     */
    @IntegerNotNull(groups = {Insert.class, Update.class})
    private Integer isJumpExternalUrl;

    /**
     * 父菜单
     */
    private ResourceMenuDto parentResourceMenu;

    /**
     * 子菜单
     */
    private List<ResourceMenuDto> childResourceMenu;
}
